/**
*	file Terrain.h
*	\brief Module qui gere les terrains
*	\author Ostapenco Vladimir, Gehin Maxime
*	\version 1.0
*	\date 16/12/2013
*	Le module terrain est utilisé pour extraire un terrain d'un fichier texte, ansi que pour les collision.
*/


#ifndef _TELEPORT
#define _TELEPORT

/**
* \struct Teleport
* \brief structure qui contient les téleporteurs
*/	
typedef struct{
	int id;
	int terrain_out;
	int terrain_in;
	int terrain_out_x;
	int terrain_out_y;
	int terrain_in_x;
	int terrain_in_y;
} Teleport;


/**
*	InitTeleport initialise un teleport
*	\param IN-OUT : pointeur sur Teleport
*/
void initTeleport(Teleport *);

/**
*	fillTeleport renvoie un tableau de tous les teleports
*	\param nb IN-OUT : nombre de teleport initialisés.
*/
Teleport * fillTeleport(int *);

/**
*	freeTeleport libère tous les teleport
*	\param tabTeleport : tableau de teleport
*/
void freeTeleport(Teleport *);

/** renvoie l'id d'un teleport*/
int getTeleportID(const Teleport *);

/** renvoie le terrain ou se trouve le teleport*/
int getTeleportTerOut(const Teleport *);

/** renvoie la position x d'un teleport*/
int getTeleportTerOutX(const Teleport *);

/**renvoie la position y d'un teleport*/
int getTeleportTerOutY(const Teleport *);

/**renvoie le terrain cible du teleport */
int getTeleportTerIn(const Teleport *);

/** renvoie la position x cible du teleport*/
int getTeleportTerInX(const Teleport *);

/** renvoie la position y cible du teleport*/
int getTeleportTerInY(const Teleport *);

/**
	isTeleport renvoie vrai si un teleport est situé sur les coordonées x y passé en parametre
*	\param pTeleport IN : tableau de teleport
*	\param nb : nombre de teleport
*	\param x : coordonée x à tester
*	\param y : coordonée y à tester
*	\param ter terrain dans lequel on test
*/
int isTeleport(const Teleport *,int,int,int,int);

/** test de regression du module teleport*/
void teleportTestRegression();


#endif
